23

» WarCraft 3 / Изображения

Похожие вопросы:

ответ
Во вкладке "Сценарий" не ставить галочку в "скрыть миникарту на экранах предпросмотра", затем импортировать .blp или .tga картинку 128х128 и назвать war3mapPreview(.blp\.tga)
ответ
Вот, нашёл: xgm.guru/files/100/174291/comments/328619/USTS.w3x
А вот, что можно сделать с помощью этой системы:
ответ
SNART, добавить в краткое описание картинку.
Вот как здесь ссылка
ответ
XGM Bot:
Похожие вопросы:

ответ
~8gabriel8:
Надо под загруженной картинкой нажать "Вставить ссылку на файл".


23

» WarCraft 3 / Есть ли такая стандартная способность

Похожие вопросы:

ответ
В ближнем бою работает панцирь с шипами.
Но он вроде как все равно наносит 1ед. дамаги ( я не пробовал с отрицательными значениями).
ответ
Ну у мастера клинка способность то посложнее...
Вот пример:
Для начала нам нужно создать иллюзии героя, а потом скрыть всех их, так же сделав визуальный эффект (если что то зеленые тени, это снаряды).
ответ
Оказывается нужно было указать в доступных улучшениях кастера нестандартное улучшение!
В данном случае у некроманта есть улучшение "магия скелетов", так как именно некромант кастует прокачиваемую способность "оживить мёртвых".
ответ
есть стандартная способность Кислотная Бомба, она тоже снижает защиту
Нейтрально враждебные - герои
ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь

23

» WarCraft 3 / здание

Похожие вопросы:

ответ
Поставь зданию модель dummy.mdx, которая с креплениями, но без видимых частей.
И прикрепи ему на overhead модель ястреба(спецэффект - создать спецэффект на юните)
ответ
Не нужно ничего импортировать.
ответ
16GB:
FabulousTiger,
Чем в вашем случае воскрешение отличается от создания такого же здания в этом же месте?
лень искать в коде юнитов и менять везде на глобалки, думал есть простой способ) Т.к порылся в листе функций и не нашел ничего на воскрешение зданий
ответ
8gabriel8, стандартные порталы как раз включаются триггером, так же триггерно им можно назначать области телепорта, так же они не ломают карту путей.
Насчет упираются в здание, карту путей ставь от портала, физ размер в 0.
ответ
Steal nerves:
ссылка смотри раздел "строительство"
иконку нужно менять у способности "строительство", у каждой расы оно разное. У них отсутствует описание, но его можно поменять в
Описание кнопок и горячие клавиши (hot keys) находятся в Units/CommandStrings.txt
Изменить также можно в "дополнительно"->"игровой интерфейс"
чтобы было 2 меню. нужно делать 2 разных юнитов = морф.
пробовал делать через спелбук с кучу игрушечных здании, но так не получится

23

» WarCraft 3 / Монолит

Похожие вопросы:

ответ
Кажется я понял в чем дело. В общем, в карте монолит в импорте файлик LoadingScreen.mdx весит 3 кб, когда я его экспортирую на рабочий стол, а затем импортирую обратно в карту с рабочего стола, то он почему-то начинает весить не 3, а 1 кб, а Лоадскрин не показывается при загрузке карты. Но из-за чего это происходит я не знаю.

23

» WarCraft 3 / Тайлы

Принятый ответ
Похожие вопросы:

ответ
TerrainArt\Blight\Ashen_Blight.blp
ответ
Сделаю может даже сегодня, поподробней, или типо аналог даларана из второй фотки
ответ
  1. для этого скачай Jass New Gen Pack 2
ответ
XGM Bot:
Похожие вопросы:

ответ
Замени тайлы города, и все ок будет.
ответ
добавить тайтлы воды в карту по тем же путям что и стандартные.
ответ
Ты явно написал пути неправильно. Мне плохо видно на таком скрине, но вроде бы там написано villave
ответ
PhysCraft, читал, там очень мало написано, и совсем не то что я ожидал. В принципе я вроде смог прописать путь по папкам, сделал что бы играла музыка, в игре модели видно, но в редакторе нет, и как я теперь буду в редакторе ландить? Мне импорт для ландшафта нужен. Есть какой-то способ в редакторе тоже видеть?
ответ
можно ли это сделать без импорта, просто с помощью настроек?
Нет.

ответ
Редактор не перегружает ресурсы. Тоесть отурыв карту, где используется *Деревня - каменистая тропа*, редактор запомнит этот тайл и при открытии других карт будет использовать именно его.
Можете элементарно проверить закрыв редактор и первой открыть карту с альфа тайлом.
Конечно не забудте убрать галку "Создавать новую карту при открытии" или, что более лучше, используйте JGNP

23

» WarCraft 3 / Фича

Похожие вопросы:

ответ
Ну, если дать неуязвимому даммику, то у них тоже приказ сбивается?
ответ
Триггер 1
Событие - Юнит заходит в область (вся карта)
Действие - Добавить в триггер 2 событие "Входящий юнит получает урон"
Триггер 2
Действие - Твои действия
(Атакованный юнит отлавливается как Attacked unit, атакующий - Damage Source)
ответ
Extremator, Общий вырубил, причиной было что удаляет другие спелбуки поэтому и закрывает.
ответ
Это лежит в слк таблице, сам тип юнита это - РО код, 'hpea' - peasant, это целое число, но в 256 ричной системе исчисления.
Были просто функции которые из текста делают РО код, вводишь -spawn h000'и появляется юнит нужного тебе типа...

23

» WarCraft 3 / Очередные вопросы по оптимизации

Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
Друга зачем? Нинада, так толку не будет...
Просто используешь Inject main (vjass) или Define (Cjass) чтобы убрать 1 только строчку из main
//***************************************************************************
//*
//*  Map Configuration
//*
//***************************************************************************

//***************************************************************************
//*
//*  Main Initialization
//*
//***************************************************************************

//===========================================================================
function main takes nothing returns nothing
    call SetCameraBounds(- 3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), - 3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), - 3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), - 3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM))
    call SetDayNightModels("Environment\\DNC\\DNCLordaeron\\DNCLordaeronTerrain\\DNCLordaeronTerrain.mdl", "Environment\\DNC\\DNCLordaeron\\DNCLordaeronUnit\\DNCLordaeronUnit.mdl")
    call NewSoundEnvironment("Default")
    call SetAmbientDaySound("SunkenRuinsDay")
    call SetAmbientNightSound("SunkenRuinsNight")
    call SetMapMusic("Music", true, 0)
    call InitBlizzard() // вот и все, удалим и не будет бж объектов.


    call InitGlobals()
    call InitCustomTriggers()
    call RunInitializationTriggers()

endfunction
Совсем забыл, функция main генерируется при сохранении карты в редакторе
Без cjass или vjass придется выколупывать war3map.j (код карты) файл из карты и править ручками в блокнотике, геморойно до безобразия, за то ненужен c\vjass и его знания.

23

» WarCraft 3 / Очередные вопросы по оптимизации

Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
Друга зачем? Нинада, так толку не будет...
Просто используешь Inject main (vjass) или Define (Cjass) чтобы убрать 1 только строчку из main
//***************************************************************************
//*
//*  Map Configuration
//*
//***************************************************************************

//***************************************************************************
//*
//*  Main Initialization
//*
//***************************************************************************

//===========================================================================
function main takes nothing returns nothing
    call SetCameraBounds(- 3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), - 3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), - 3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), - 3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM))
    call SetDayNightModels("Environment\\DNC\\DNCLordaeron\\DNCLordaeronTerrain\\DNCLordaeronTerrain.mdl", "Environment\\DNC\\DNCLordaeron\\DNCLordaeronUnit\\DNCLordaeronUnit.mdl")
    call NewSoundEnvironment("Default")
    call SetAmbientDaySound("SunkenRuinsDay")
    call SetAmbientNightSound("SunkenRuinsNight")
    call SetMapMusic("Music", true, 0)
    call InitBlizzard() // вот и все, удалим и не будет бж объектов.


    call InitGlobals()
    call InitCustomTriggers()
    call RunInitializationTriggers()

endfunction
Совсем забыл, функция main генерируется при сохранении карты в редакторе
Без cjass или vjass придется выколупывать war3map.j (код карты) файл из карты и править ручками в блокнотике, геморойно до безобразия, за то ненужен c\vjass и его знания.

23

» WarCraft 3 / ИИ

Похожие вопросы:

ответ
вопросы типа сделайте за меня не принимаются
по поводу того как это делать написано здесь xgm.guru/p/wc3/articles
ответ
BrEd Pitt, что значит использовать
берёшь и создаёшь юнитов для резервного игрока а потом отдаёшь им приказ
ответ
Возможно listfile.txt повредился.
Перекачай его.
ответ
есть событие - юнит получает урон. в нём отслеживается как жертва, так и наносящий урон. можно хоть через хэш, хоть через структуру Юнита записывать всё, что угодно. Кто от кого конкретно сколько получил урона, кто кому сколько нанёс, сколько провисел на ком-то бафф яда и т.п. (Сначала был loop, а теперь периодический триггер). Каждые N секунд, перебираешь всех юнитов в массиве или списке, и отслеживаешь всё, что надо.
Структура - Unit. У неё есть двойной список с юнитами и уроном от яда (полученным или нанесённым - зависит от того, у кого будет этот список - у жертв или у тех, кто наносит яд). Типа DoubleList. В DoubleList есть элементы DoubleElement. В каждом таком элементе записаны unit и real (урон от яда от этого юнита). При получении урона от яда перебирается список, если юнит уже есть, урон от него (или ему) прибавляется. Если нет, то создаётся новый элемент с новым юнитом.
Периодически у нужных юнитов эти списки перебираются. Всё.
ответ
Diazon, прочти статьи по массивам/структурам
после чего юзай двухмерные массивы/поля-массивы

23

» WarCraft 3 / вызов функций

Похожие вопросы:

ответ
Мануал описывает поведение макросов достаточно понятно. Разъясняя пример в теме другими словами
define MyFunc(type) = {
	nothing MyFunc_##type(type x){
		BJDebugMsg('type')
	}
}
Если препроцессор, обрабатывая код, наткнется на строчку, где вызывается макрос MyFunc, например
// Где-то в CustomScript карты
MyFunc(real)
Он применит указанный выше макрос, заменив в нем слово type на указанное в скобках MyFunc слово real, в результате чего получим код
// MyFunc(real) убрано препроцессором и заменено кодом ниже
nothing MyFunc_real(real x){
	BJDebugMsg("real")
}
Что впоследствии транслируется из cJass в обычный Jass2
function MyFunc_real takes real x returns nothing
	call BJDebugMsg("real")
endfunction
ответ
Нет. Я пока хочу достроить карту на GUI, думаю мне осталось дней 10-30 работать, а буду ли следующую делать - под вопросом. Не хочется тратить время на изучение jass из-за пустяка! Однако Я использовал Custom Script, но это было содрано с одного сайта, а вот чтобы делать самому нужно сначала полностью изучить язык. Либо знаю, либо нет, чуть-чуть не считается!
Что касается wait, то если не это то что тогда?
Опытным путём сам установил что в процесс ничего не вклинивается. Можно использовать Триггер как Функцию и ссылаться на него в другом Триггере. По сути, это и есть функция, если глянуть на jass. Вопрос закрыт.
ответ
Потому что у триггеров нет имен.
Создаем массив строк name_array;
Создаем массив триггеров trigger_array;
Создаем инт name_array_index;
Создаем функцию
register_trigger(Trigger trigger, string name) {
    name_array[name_array_index] = name;
    trigger_array[name_array_index] = trigger;
    name_array_index = name_array_index + 1;
}
Создаем функцию
name_to_trigger(string name) {
    for (integer index = 0; index < name_array_index; index++) {
        if name_array[index] == name {
            return trigger_array[index];
        }
    }
}
Затем регистрируем все триггеры через register_trigger.
А после этого думаем, реально ли у нас столько абилок, что простая последовательность if name == "my_ability" then RunTrigger(my_ability) хуже этого решения
ответ
Имена бж функций есть в..blizzard.j, чтобы они не конфликтовали с вашими способностями - чекайте софтом код абилок и близард ж файл, на предмет одинаковых имен и правьте, а так еще советую тулы векса или хеави лок - они сжимают имена и небудет проблем с именами функций и переменных в скрипте.
ответ
у библиотеки нет методов, у нее обычные функции
если функция public, то вызывать нужно
call LibraryName_MyFunction()
а вообще вопрос, ответ на который есть в базе статей, за такое вообще варнить можно было б

23

» WarCraft 3 / ИИ

Похожие вопросы:

ответ
вопросы типа сделайте за меня не принимаются
по поводу того как это делать написано здесь xgm.guru/p/wc3/articles
ответ
BrEd Pitt, что значит использовать
берёшь и создаёшь юнитов для резервного игрока а потом отдаёшь им приказ
ответ
Возможно listfile.txt повредился.
Перекачай его.
ответ
есть событие - юнит получает урон. в нём отслеживается как жертва, так и наносящий урон. можно хоть через хэш, хоть через структуру Юнита записывать всё, что угодно. Кто от кого конкретно сколько получил урона, кто кому сколько нанёс, сколько провисел на ком-то бафф яда и т.п. (Сначала был loop, а теперь периодический триггер). Каждые N секунд, перебираешь всех юнитов в массиве или списке, и отслеживаешь всё, что надо.
Структура - Unit. У неё есть двойной список с юнитами и уроном от яда (полученным или нанесённым - зависит от того, у кого будет этот список - у жертв или у тех, кто наносит яд). Типа DoubleList. В DoubleList есть элементы DoubleElement. В каждом таком элементе записаны unit и real (урон от яда от этого юнита). При получении урона от яда перебирается список, если юнит уже есть, урон от него (или ему) прибавляется. Если нет, то создаётся новый элемент с новым юнитом.
Периодически у нужных юнитов эти списки перебираются. Всё.
ответ
Diazon, прочти статьи по массивам/структурам
после чего юзай двухмерные массивы/поля-массивы

23

» WarCraft 3 / Execut

Похожие вопросы:

ответ
Пользуйтесь директивами library и endlibrary.
Мануал по ссылке.
ответ
Проблема возникает также при переносе вот этого вот в инициализацию триггера тест.
Но при этом если вместо строки вроде "12345" использовать, например, GetAbilityName('Aloc') - то все работает.
Это какой-то баг со строками?
Еще у меня почему-то происходит фантомный клик по центру карты в начале игры
Вобщем не стоит юзать имена функций напрямую в экзекуте и вообще таймеры лучше
ответ
На хайве получил ответ, надо было писать evaluate

23

» WarCraft 3 / Плавающий текст

Похожие вопросы:

ответ
ровно 99 штук
ответ
Любая строка ограничена, 256 символов латиницы и вдвое меньше символов кирилицы насколько я помню.
Никак не лечится, краткость сестра таланта и все такое.
ответ
имеет смысл открыть раздел ГУИ с плавающим текстом, взять словарик английского и самому попробовать его различные комбинации. Если ответить вкратце - да, это можно сделать

Floating Text - Create floating text that reads (Текст) above DamageEventTarget with Z offset (40.00 + (Random real number between 1.00 and 25.00)), using font size 13.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency - создает надпись Текст с нужными настройками цвета и смещения по оси Z над нужным нам юнитом. Создавать текст также можно в любой точке
Floating Text - Set the velocity of (Last created floating text) to 75.00 towards 90.00 degrees - Текст будет смещен на 75 ед. с углом смещения 90 градусов
Floating Text - Change (Last created floating text): Disable permanence - не помню, что делает
Floating Text - Change the lifespan of (Last created floating text) to 3.50 seconds - устанавливает время жизни текста 3,5 сек
Floating Text - Change the fading age of (Last created floating text) to 1.40 seconds - заставляет текст медленно гаснуть в течении 1,4 сек, чтобы он не пропадал резко и выглядело красиво

ищите одноименный раздел и успехов

23

» WarCraft 3 / Ловкость

Похожие вопросы:

ответ
~8gabriel8:
ClotPh, ну и зачем промах-то отлавливать?
DarkHammer, ну вот карта с триггерами:
давай поясню, что в ней получилось, а что нет. Во-первых, там три триггера для способности, в Иниц. сражения указано, чтобы гном периодически кидал в героя молот для проверки работы защиты от магии. В trigger 000 указано, чтобы триггер защиты от магии активировался после изучения Змеиной ловкости, тут много нюансов. Например, я просто не знаю, что ты хотел, сделать промахи от магии для всех, включая бандитов, либо лишь для одного героя на карте. Также изначально герой может обладать Змеиной ловкостью, в таком случае этот триггер не нужен, его можно убрать и изначально включить trigger 001. Может быть так, что на карте у нескольких героев есть Змеиная ловкость, тогда надо задавать им переменные в этом триггере. Короче, тут очень много всего, мог бы сделать универсальную систему для всех случаев, но она была бы очень большой, мне просто жалко своего времени на это, для себя сделал то, что требовалось, мне достаточно. Опиши свою ситуацию, куда тебе нужна Змеиная ловкость, действующая и на заклинания, тогда могут быть советы по trigger 000. Во-вторых, в trigger 001 указано случайное срабатывание защиты от магии, примерно как я описывал выше, только немного иначе выглядят:
так как у меня подразумевается, что на карте только один юнит обладает Змеиной ловкостью от заклинаний, то я его и указываю, иначе может понадобиться использовать переменные для юнитов. В действиях идёт проверка на уровень Змеиной ловкости и выставлении шанса на срабатывание промаха заклинания. Если шанс выпал, то герою добавляется Защита от магии от Амулета защиты, но только моя версия этой способности, чтобы не было потом конфликтов с этим предметом у Верховного мага. При этом trigger 001 отключается, чтобы не сработал повторно до того, как в героя способность прилетит, а то вдруг кто-то ещё направит в героя заклинание, вторая Защита от магии ему добавится что ли? Вместе с отключением trigger 001 включается trigger 002, тут отлавливается срабатывание моей Защиты от магии и добавляется всплывающий текст "промах". Как бы понятно, что раз Защита от магии сработала, значит заклинание попало, там воспроизводится соответствующий игровой звук, триггер отключается, защита от магии убирается и опять запускается trigger 001, чтобы ловить дальше заклинания и считать шанс на промах, ну а потом всплывающий текст. В этом случае, если кто-то издалека направил на героя заклинание, и оно получило шанс на промах, trigger 001 отключился, а кто-то рядом тоже направил заклинание, и оно долетело первым, то первое заклинание промахнётся, trigger 001 включится и будет считать шансы на промах заклинаний, но, направленное издалека заклинание в теории долетит и не промахнётся, так как Защиты от магии уже не будет, а шанс на промах для него уже успешно выпал. Если враги не бьют способностями постоянно, то это не критично, но если монстры нападают массово и атакуют способностями с кулдауном 0,1 секунда, то это будет ощутимо. А вот со всплывающим текстом у меня не очень получилось, промах обычный всплывает над тем, кто промахнулся, но как сделать промах от заклинателя, если произошла описанная выше ситуация, когда для одного заклинания срабатывает шанс на промах, а им пользуется другое более быстрое заклинание? Я не знаю. Недавно тут задавался подобный вопрос, я его не посмотрел, правда, но думаю, что там используются не те триггеры, которыми владею. Как вариант можно делать текст не "промах", а "промах магии" над героем со Змеиной ловкостью.
ответ
Steal nerves:
что-то не вижу на скрине как вы пытаетесь запихнуть в if/then/else. Почему должен угадывать
Предположение: ошибка - локальные переменные объявляются всегда первыми. Если там будет какое-то другое действие, а объявление локалок ниже, то это ошибка. Ты вперед, наверное, поставил действие "if/then/else", а потом начал объявлять что-то там,
правильно
local unit u
if (условие) then
	действие
endif
не правильно
if (условие) then
	local unit u
endif
Локалки вначале функции всегда объявляются. Можете в код конвентировать и посмотреть.
вейты не юзайте лучше, используйте таймер. Он поток паузит, еще работает во время паузы, и не точен .
ответ
Вообще - работает наивысший показатель, ничего не суммируется и не складывается.
То что ты читал про формулу - скорее всего описывается метод сложения как в доте
Каждый следующий уменьшает шанс попадания на свой % от оставшегося
если у тебя есть 40% уворота, то шанс попадения по тебе 60%
если у тебя ещё есть 50% уворота, то шанс попадения на 50% (это 30%, а уворот 70%)
В доте организация была через абилку в ~20 уровней с шагом по 5%
уровень 1 - шанс 5%, уровень 2 - шанс 10% ... уровень 10 - шанс 50% ...
И значение округлялось в меньшую сторону (если высчитывается у тебя 62,5%, то будет 60%)
. . .
Ещё как вариант - отлавливать физ.атаки и делать промахи триггерно
У меня был практически рабочий вариант без косяков... но не срослось
А так вообще кто-то делал через мгновенные атаки дальнего боя с гашением об каменный доспех и нанесением урона по формулам от всех бонусов (через БД), ну тут сам понимаешь...
ответ
Поищи в игровом интерфейсе (главное окно редактора, сверху в меню полазь).

23

» WarCraft 3 / Своя подсветка функций

Похожие вопросы:

ответ
Не разбираюсь, но не вижу причин, почему было бы нельзя. Вопрос в том, надо ли для этого быть хакером или достаточно продвинутым юзером...

23

» WarCraft 3 / Как настроить шрифт в Jass?

Похожие вопросы:

ответ
Zeuz, Courier New
SomeFire, скорее всего он имеет ввиду шрифты джасс кода
настраивается кнопочкой Options при редактировании джасс кода

23

» WarCraft 3 / World Editor

Похожие вопросы:

ответ
ну все по стандарту - проверка на вирусы, проверка реестра, чистка реестра, дефрагментация диска, проверка диска, установка в другую директорию, откат на точку восстановления
ответ
nvc123, да, и я это уже понял
ответ
Вершины все правильно прикреплены к костям?
ответ
Не особо шарю, но :
-отключить антивирус
-переустанови jngp
ответ
Ну видимо хреново сделал, раз фаталит...

23

» WarCraft 3 / Позиционный звук

Похожие вопросы:

ответ
Я сравнил стандартный и свой звук. Обнаружил, что у меня 2 канала, у стандартного 1. Я перковертировал все свои звуки... Стало лучше, но часть звуков все равно не работает(
ответ
Оказывается, нужно было добавить Ждать перед Спецэффекты - Послать передачу.
ответ
заменять через локального игрока пустой путь на звук
ответ
предлагаю дамми-каст абилки в нужном месте с нужным звуком
я парился с этим вопросом еще в бытность форума, но потом отвлекся на другие дела

23

» WarCraft 3 / Импорт Модели Дерева

Похожие вопросы:

ответ
тему можно закрывать. ответ сам нашел.
ответ
Для каждого дерева нужны три модели: обычная, неактивная (с названием Doodads\Terrain\AshenTree\AshenTree0S.mdx, например) и неактивная разрушенная (Doodads\Terrain\AshenTree\AshenTree0D.mdx). У неактивных моделей должна быть только одна анимация — Stand. У первой — только деревце, у второй — только пенёк, соответственно.
Когда с деревом никто не взаимодействует, отображаются неактивные модели. Ты их не заменил, потому такая вот фигня.
Как сделать полноценно работающие деревья с моделями, не заменяющими стандартные, я не знаю. Возможно, никак.
ответ
Настраиваешь в РО дерево так чтобы у него была 1 вариация и там текстуру нужно к дереву прописать если она импортирована внимательно изучи все строки связанные с деревом как разрушенный объект.

23

» WarCraft 3 / Поворот Юнита

Похожие вопросы:

ответ
ответ
У меня кончились мыслИ. Привязку к точкам всё что могу тут предложить, а жаль...

ХОТЯ знаешь чё - осенило меня тут - создавай на позиции здания дамик с картой пути в виде буквы О. То есть само здание как бы без текстуры пути, а его огораживает дами с кольцевой текстурой. Таким образом здание никуда не убежит, зато сможет поворачиваться!

Прикрепляю пример. Только себе текстурку поплотнее сделай
ответ
проверка поворота юнита в таймере
иначе никак
ответ
Steal nerves:
перевод градусы в радианы, радианы в градусы
Ну чтобы перевести, из градусов в радианы
180° = pi радиан = 3,14...
Если знаешь расположение градусов в окружности (там 2pi = 360°, или pi/2 = 90°)
60° = pi/3 радиан = 3,14/3 = 1,0466
30° = pi/6 радиан = 3,14/6 = 0,5233
Или использовать готовую формулу
Angle to Radians => Angle *pi / 180 (формула)
pi/180 = 3,14/180 = 0,01744 (коэффициент, записан в варе в переменную-множитель bj_DEGTORAD)
_________________
Чтобы перевести из радиан в градусы
Использую формулу
Radians to Angle => Radians * 180 / pi
1 радиан = 57,32°
0,5 радиан = 0,5 * 180/3,14 = 28,6°
Используют точно также переменную-множитель bj_RADTODEG, но с другим названием. Там было Deg to Rad (перевести в радианы), здесь Rad to Deg (в градусы)
тут есть погрешности до десятичных, до сотых и более. Поэтому может не соответствовать. Это как пример. Считал сам. А вообще юзайте готовые переменные и не морочьте голову
код
local unit u = GetTriggerUnit()
local real a = GetUnitFacing(u) * bj_DEGTORAD //GetUitFacing возвращает параметры в градусы, поэтому нужно перевести в радианы
local real x = GetUnitX(u) + 100. * Cos(a)
local real y = GetUnitY(u) + 100. * Sin(a)
//потом то-то делаешь. x, y
xgm.guru/p/wc3/179127 тут есть пример карта, на гуи там, но переделать можно и на jass (там кастер двигается в ту сторону, куда смотрит). И пример в качестве кода, если нужно двигать относительно двух точек (сделал пример движение снаряда от Кастера к цели)
ответ
фиксировать угол при применении и постоянно выравнивать юнита при периодической проверке
если ставить скорость поворота 0 - у юнита начнутся проблемы с движением

23

» WarCraft 3 / Краши и вылеты из-за триггера.

Похожие вопросы:

ответ
Патиссончик, про центр области не заметил
точка каждый раз создаётся заново и это утечка
Патиссончик, есть прога на сайте для записи логов
так же есть дебаг через прелоад на сайте
вот счётчик утечек
ответ
Smart096, баг только в этой карте?
в новых картах бага нету?
если да то стоит проверить импортируемые модели и текстуры (мб часть битая)
но с вероятностью в 60% проблема в системе ибо было много жалоб на баги в вин10

23

» WarCraft 3 / Триггер союза

Похожие вопросы:

ответ
Cрабатывает при любом нанесенном уроне по союзнику
ответ
kjstilin, Изи же , вот лови
ответ
Отключение триггера не прерывает его и не отменяет. Лишь запрещает последующие выполнения.
Если действие выполнено, оно не будет отменено.
ответ
Fraps:
Интересно - потести. Много времени это, уверяю, не займёт.
Я этого никогда не проверял. Но раз вижн даётся, сообщения, по логике, тоже должны.